package pos.data;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import pos.domain.Deporte;
import pos.domain.Deportista;
import pos.domain.Equipo;
import pos.domain.Evento;
import pos.domain.EventoActividadGrupo;
import pos.domain.Habilidad;
import pos.domain.Usuario;




public class Datos {
	
	private List<Evento> eventos = new ArrayList();
	private List<Usuario> usuarios = new ArrayList();
	private List<Deportista> deportistas = new ArrayList();
	private List<Equipo> equipos = new ArrayList();
	private List<Habilidad> habilidades = new ArrayList();
	private List<Deporte> deportes = new ArrayList();
	Deportista d1;
	Deportista d2;
	Deportista d3;
	Deportista d4;
	Deportista d5;
	Deportista d6;
	Equipo e1;
	Equipo e2;
	Equipo e3;
	Equipo e4;
	Equipo e5;
	Equipo e6;
	Habilidad h1;
	Habilidad h2;
	Habilidad h3;
	Habilidad h4;
	Deporte dep1;
	Deporte dep2;
	Deporte dep3;
	Deporte dep4;
	
	
	
	
	
	public void inicializaEventos(){
		Evento ev1 = new EventoActividadGrupo();
		Evento ev2 = new EventoActividadGrupo();
		ev1.setDescripcion("Esto es una caca 1");
		ev2.setDescripcion("Esto es una caca 2");
		ev1.setTitulo("evento 1");
		ev2.setTitulo("evento 2");
		ev1.setIdEvento("101");
		ev2.setIdEvento("102");
		Date f = new Date (1980,12,2);
		Deportista d = new Deportista("Manolo", "bombo", "caca@caca.com", "Manolo", "Bermejo",f);
		ev1.setCreador(d);
		this.eventos.add(ev1);
		this.eventos.add(ev2);
		
	}
	
	public void inicializaUsuarios(){
		inicializaDeportistas();
		inicializaEquipos();
		Evento ev1 = new EventoActividadGrupo();
		ev1.setDescripcion("Esto es una caca 1");
		ev1.setTitulo("evento 1");
		ev1.setIdEvento("101");
		this.eventos.add(ev1);
		Date f = new Date (1980,12,2);
		Deportista d = new Deportista("Manolo", "bombo", "caca@caca.com", "Manolo", "Bermejo",f);
		ev1.setCreador(d);
		this.usuarios.add(d);
		Iterator ite = this.equipos.iterator();
		Iterator itd = this.deportistas.iterator();
		while(ite.hasNext()){
			this.usuarios.add((Usuario)ite.next());
		}
		while(itd.hasNext()){
			this.usuarios.add((Usuario)itd.next());
		}
		
	}
	
	public void inicializaMensajes(){
		/*Evento ev = new Evento();
		Usuario u3 = new Usuario();
		u3.setUserName("YoMismo");
		Mensaje m1 = new Mensaje ("Este evento es mu malo",u3);
		ev.addMensajes(m1);*/
	}
	
	public List getEventos() {
		inicializaEventos();
		//inicializaMensajes();
		return eventos;
	}
	public void setEventos(List eventos) {
		eventos = eventos;
	}
	public List getUsuarios() {
		inicializaUsuarios();
		return usuarios;
	}
	public void setUsuarios(List usuarios) {
		usuarios = usuarios;
	}
	public List getHabilidades() {
		return habilidades;
	}
	public void setHabilidades(List habilidades) {
		habilidades = habilidades;
	}
	public void inicializaDeportistas(){
		d1 = new Deportista("d1", "d1", "d1@cd.com", "Juan1", "Perez1", new Date());
		d2 = new Deportista("d2", "d2", "d1@cd.com", "Juan2", "Perez2", new Date());
		d3 = new Deportista("d3", "d3", "d1@cd.com", "Juan3", "Perez3", new Date());
		d4 = new Deportista("d4", "d4", "d1@cd.com", "Juan4", "Perez4", new Date());
		d5 = new Deportista("d5", "d5", "d1@cd.com", "Juan5", "Perez5", new Date());
		d6 = new Deportista("d6", "d6", "d1@cd.com", "Juan6", "Perez6", new Date());
		inicializaHabilidades();
		d6.setHabilidades(habilidades);
		d1.setHabilidades(habilidades);
		this.deportistas.add(d1);
		this.deportistas.add(d2);
		this.deportistas.add(d3);
		this.deportistas.add(d4);
		this.deportistas.add(d5);
		this.deportistas.add(d6);
		
		
	   
	}
	public void inicializaEquipos(){
		e1 = new Equipo("e1", "e1", "e1@cd.com", "Equipo1", new Deporte("Futbol"));
		e2 = new Equipo("e2", "e2", "e1@cd.com", "Equipo2", new Deporte("Baloncesto"));
		e3 = new Equipo("e3", "e3", "e1@cd.com", "Equipo3", new Deporte("Tenis"));
		e4 = new Equipo("e4", "e4", "e1@cd.com", "Equipo4", new Deporte("Futbol"));
		e5 = new Equipo("e5", "e5", "e1@cd.com", "Equipo5", new Deporte("Baloncesto"));
		e6 = new Equipo("e6", "e6", "e1@cd.com", "Equipo6", new Deporte("Tenis"));
		this.equipos.add(e1);
		this.equipos.add(e2);
		this.equipos.add(e3);
		this.equipos.add(e4);
		this.equipos.add(e5);
		this.equipos.add(e6);
		
	}
	
	public void inicializaHabilidades()
	{
		h1= new Habilidad(new Deporte("Fubtol"), 1, 1, 1);
		h2= new Habilidad(new Deporte("Hockey"), 1, 1, 1);
		h3= new Habilidad(new Deporte("Baloncesto"), 1, 1, 1);
		h4= new Habilidad(new Deporte("Petanca"), 1, 1, 1);
		habilidades.add(h1);
		habilidades.add(h2);
        habilidades.add(h3);
        habilidades.add(h4);
	}

	
	public List<Deportista> getDeportistas(){
		inicializaDeportistas();
		return this.deportistas;
	}
	public List getEquipos(){
		inicializaEquipos();
		return this.equipos;
	}
	
	public Usuario getUsuario(String userName){
		List usuarios = getUsuarios();
		Iterator it = usuarios.iterator();
		boolean encontrado = false;
		Usuario user = null;
		while(it.hasNext() && !encontrado){
			user = (Usuario)it.next();
			if(user.getUserName().equals(userName)){
				encontrado = true;
			}
		}
		if(encontrado){
			return user;
		}else return null;
		
	}
	public void inicializaDeportes(){
		dep1 = new Deporte("Baloncesto");
		dep2 = new Deporte("Futbol");
		dep3 = new Deporte("Tenis");
		dep4 = new Deporte("Beisbol");
	}
	
	public List getDeportes(){
		inicializaDeportes();
		deportes.add(dep1);
		deportes.add(dep2);
		deportes.add(dep3);
		deportes.add(dep4);
		
		return deportes;
	}
	
	public Deportista getDeportista (String userName){
		inicializaDeportistas();
		return d1;
	}
	
	public Equipo getEquipo (String userName){
		inicializaEquipos();
		return e1;
	}

}
